package com.zb.util.Nosql.Redis.Model;

import org.msgpack.annotation.Message;

@Message
public class ProductSubscribeInfo implements Cloneable {

	private Long productFlowId = 0L; // 产品ID
	private Integer transactWay = 1; // 办理方式 1.Web Portal申请办理 2.短信申请办理 3:IB办理
										// 4:ICS办理 5:CSM 6:BMS 7:DSC
	private Long operateDate = 0L; // 操作时间
	private Integer operateType = 1; // 操作类型 1：订购 2：退订
	private Long deadline = 0L; // 截止日期
	private Long renewDate = 0L; // 续费日期
	private Byte renewNum = 0; // 续费次数
	private Byte renewState = 0; // 续费状态 0：表示续费成功 1：表示续费失败
	private String countryCode = "86"; // 国家码
	private Byte status = 1; // 产品状态 0：暂停 1：激活 默认值为1
	private Byte activeSuspendWay = 1; // 暂停激活方式 1：WEB 2：SMS 3：IB 4：ICS 5：CSM
										// 6：BMS 9：CRM 10：AUTO 11：USSD
	private Byte graceStatus = 0; // 宽限期状态 0：未进入宽限期 1：进入宽限期 2：暂停期
	private Long graceEndTime = 0L; // 宽限期结束时间
	private Byte preStatus = 0; // 产品状态(新)
	private Byte preAceSusWay = 1; // 订购方式
	private Long durationOfGracePeriod = 0L; // 产品宽限期
	private Long subscribeServiceType = 0L;

	public Long getSubscribeServiceType() {
		return subscribeServiceType;
	}

	public void setSubscribeServiceType(Long subscribeServiceType) {
		this.subscribeServiceType = subscribeServiceType;
	}

	public Byte getActiveSuspendWay() {
		return activeSuspendWay;
	}

	public void setActiveSuspendWay(Byte activeSuspendWay) {
		this.activeSuspendWay = activeSuspendWay;
	}

	public Byte getPreStatus() {
		return preStatus;
	}

	public void setPreStatus(Byte preStatus) {
		this.preStatus = preStatus;
	}

	public Byte getRenewNum() {
		return renewNum;
	}

	public void setRenewNum(Byte renewNum) {
		this.renewNum = renewNum;
	}

	public Integer getOperateType() {
		return operateType;
	}

	public void setOperateType(Integer operateType) {
		this.operateType = operateType;
	}

	public Byte getStatus() {
		return status;
	}

	public void setStatus(Byte status) {
		this.status = status;
	}

	public String getCountryCode() {
		return countryCode;
	}

	public void setCountryCode(String countryCode) {
		this.countryCode = countryCode;
	}

	public Long getRenewDate() {
		return renewDate;
	}

	public void setRenewDate(Long renewDate) {
		this.renewDate = renewDate;
	}

	public Byte getGraceStatus() {
		return graceStatus;
	}

	public void setGraceStatus(Byte graceStatus) {
		this.graceStatus = graceStatus;
	}

	public Long getProductFlowId() {
		return productFlowId;
	}

	public void setProductFlowId(Long productFlowId) {
		this.productFlowId = productFlowId;
	}

	public Long getGraceEndTime() {
		return graceEndTime;
	}

	public void setGraceEndTime(Long graceEndTime) {
		this.graceEndTime = graceEndTime;
	}

	public Integer getTransactWay() {
		return transactWay;
	}

	public void setTransactWay(Integer transactWay) {
		this.transactWay = transactWay;
	}

	public Long getOperateDate() {
		return operateDate;
	}

	public void setOperateDate(Long operateDate) {
		this.operateDate = operateDate;
	}

	public Byte getPreAceSusWay() {
		return preAceSusWay;
	}

	public void setPreAceSusWay(Byte preAceSusWay) {
		this.preAceSusWay = preAceSusWay;
	}

	public Long getDurationOfGracePeriod() {
		return durationOfGracePeriod;
	}

	public void setDurationOfGracePeriod(Long durationOfGracePeriod) {
		this.durationOfGracePeriod = durationOfGracePeriod;
	}

	public Byte getRenewState() {
		return renewState;
	}

	public void setRenewState(Byte renewState) {
		this.renewState = renewState;
	}

	public Long getDeadline() {
		return deadline;
	}

	public void setDeadline(Long deadline) {
		this.deadline = deadline;
	}

	@Override
	public String toString() {
		return "ProductSubscribeInfo [subscribeServiceType="
				+ subscribeServiceType + ", activeSuspendWay="
				+ activeSuspendWay + ", preStatus=" + preStatus + ", renewNum="
				+ renewNum + ", operateType=" + operateType + ", status="
				+ status + ", countryCode=" + countryCode + ", renewDate="
				+ renewDate + ", graceStatus=" + graceStatus
				+ ", productFlowId=" + productFlowId + ", graceEndTime="
				+ graceEndTime + ", transactWay=" + transactWay
				+ ", operateDate=" + operateDate + ", preAceSusWay="
				+ preAceSusWay + ", durationOfGracePeriod="
				+ durationOfGracePeriod + ", renewState=" + renewState
				+ ", deadline=" + deadline + "]";
	}

	@Override
	public Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
}
